Skip to content

Conversation

@oaktowner
Copy link
Contributor

@oaktowner oaktowner commented Jul 1, 2020

The Istio Steering Committee oversees community outreach, ecosystem engagement, and project governance. To date, Steering Committee seats were granted to founders (IBM and Google) and were approximately allocated based on contribution. While this let us get going and move quickly, we’ve outgrown this loose structure, and as the project evolves and adoption grows, so should its leadership opportunities.

This PR proposes a new Steering Committee charter, with two kinds of seats, each with equal voting weight: Contributor Seats and Community Seats. Contributor Seats will be allocated proportionally to company contributions; Community Seats are open to any member who has made a contribution to the project and are voted on by their fellow contributors. With this proposed new structure, community members making an impact on the project -- through both code and non-code contributions -- will have a voice and opportunities to impact how the project grows.

@oaktowner oaktowner requested a review from a team as a code owner July 1, 2020 04:29
@googlebot googlebot added the cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. label Jul 1, 2020
@istio-testing istio-testing added needs-rebase size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jul 1, 2020
1. The top three contributing companies to Istio are eligible for
Contributor Seats, proportional to their contribution.
1. Each company is allocated one seat;
1. The remaining six seats are allocated based on percentage project
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not agree with the proportional seating allocation for steering. I’m open to the idea that contributors meeting the 5% qualification get a set number of seats (1 or 2) but no additional seats should be allocated based on contribution. A goal of the steering is to have fare and neutral representation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about community-voted and contribution-based seats is not a fair make up that represents the community?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair and neutral are not always compatible. If the allocation is done based on meritocratic principles (percentage contributions), that could be called 'fair' but not 'neutral' when the contributions are not balanced.

In such a case though, there would be a path to neutral representation which would be increasing contributions to balance them out. And it has the nice property that giving contributors incentives to increase their contributions is good for the project overall.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a discussion and consensus in the steering committee and approval by the current steering committee members.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since contributor seats would be a new addition, it would be good to hear from folks not currently on Steering but are active contributors and potentially could be!

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My main concern was not with contributor seats. My questioning is the need to distribute the 6 remaining community seats proportionally based on contributions

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are 4 community seats (2 elected by community and 2 appointed by SC) and 9 contributor seats. The contributor seats are held by contributing companies. This thread was about the 6 remaining contributor seats after the top 3 companies are assigned a seat.

Copy link
Contributor

@craigbox craigbox Jul 29, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on discussion at recent Steering committee meetings, we have consensus for 9 Contribution Seats, and 4 Community Seats.

  • Contribution seats are allocated based on merged PRs in the first instance, and that will be reviewed every year.
  • Community seats are now all voted by the project members.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dcberg and @rvennam are you OK with me resolving this now?

dcberg
dcberg previously requested changes Jul 1, 2020
Copy link

@dcberg dcberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comments regarding contribution based seats.

@dcberg dcberg requested review from knrc, linsun and rvennam July 1, 2020 17:24
Copy link
Member

@nrjpoddar nrjpoddar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@oaktowner we should have some verbiage around setting "ethical" guidelines for the project. This group seems like a natural place to set and enforce these standards.

@googlebot
Copy link

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@googlebot googlebot added cla: no Set by the Google CLA bot to indicate the author of a PR has not signed the Google CLA. and removed cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. labels Jul 1, 2020
Comment on lines 61 to 62
by the number of merged pull requests on GitHub over the one year period prior
to the Contributor Seat assignments:
Copy link
Member

@nrjpoddar nrjpoddar Jul 1, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can abstract this language a bit to allow for future enhancements/changes.

I would propose changing "expenditure" to "contributions" unless "expenditure" is added on purpose for direct cost attribution. Here's my suggestion:

The measurements for effort and contributions can change over time via the approval process of the Steering committee members. The current measurement is based on by the number of merged pull requests on GitHub over the one year period prior to the Contributor Seat assignments:

The reason I would suggest we include this is any metrics we come up with can be gamed easily and can have interesting model for incentives (like many small PRs which can be good or bad :)). We need to start somewhere and evolve as we learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do like this -- I like the phrasing change (expenditure->contributions) and I also like the new verbiage. Anyone opposed?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be "aggregate contributions, including non-code or procedural such as extensive issue triage" - you want to make sure contributor diversity is encouraged

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The draft said:

(note: while the project fully embraces that there are ways beyond pull requests to measure input, we anticipate that merged pull requests are a decent proxy for total contribution, which includes reviews, comments, etc)

For the purposes of calculating company contribution, we felt it unlikely that it would be imbalanced such that other contributions were out of alignment with the ratios of participation by PRs. (I say this as someone whose contributions are not primarily code.) I believe Sean looked at the numbers for other potential metrics, and found them to be about the same.

For an individual, we put in the idea of an exclusion for "standing" like Kubernetes has, for voting. For standing for election, the bar to membership seems low enough that an individual (for example, an end user) is likely to meet it through things such as docs, blog or governance contributions.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that point @nrjpoddar. This was a one of my concerns with proportional seat distribution due to the arguments around calculating contributions.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 I'm concerned with merged pull requests as well. I believe it is not an issue today as other contributions would reflect at similar percentage of merged PR, but it could shift in the future. Have some flexibility like @nrjpoddar suggested would help. Remember, it is almost impossible to reach consensus to change anything in the charter if we need 80% passing.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The point being it should be difficult to change the charter and having a large percentage agreement to change the charter is reasonable/expected.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PTAL at the updated language, which addresses this.

@jdumars
Copy link

jdumars commented Jul 1, 2020

I think this is an outstanding and tangible commitment to representative, open governance for this project. Thank you all for continuing this important work.

@sdake
Copy link
Member

sdake commented Jul 2, 2020

The Istio Steering Committee oversees community outreach, ecosystem engagement, and project governance. To date, Steering Committee seats were granted to founders (IBM and Google) and were approximately allocated based on contribution. While this let us get going and move quickly, we’ve outgrown this loose structure, and as the project evolves and adoption grows, so should its leadership opportunities.

This PR proposes a new Steering Committee charter, with two kinds of seats, each with equal voting weight: Contributor Seats and Community Seats. Contributor Seats will be allocated proportionally to company contributions; Community Seats are open to any member who has made a contribution to the project and are voted on by their fellow contributors. With this proposed new structure, community members making an impact on the project -- through both code and non-code contributions -- will have a voice and opportunities to impact how the project grows.

@oaktowner My reading of the draft does not deliver on this paragraph. Contributors who make tangible contributions may not stand for election if they are employed by a company that maintains a "Contributor Seat". I would encourage you to think about why having elected community members that are free of this requirement would be valuable for a steering committee, or any board in general.

Cheers,
-steve

@ssuchter
Copy link
Contributor

ssuchter commented Jul 2, 2020

@oaktowner Contributors who make tangible contributions may not stand for election if they are employed by a company that maintains a "Contributor Seat". I would encourage you to think about why having elected community members that are free of this requirement would be valuable for a steering committee, or any board in general.

@sdake This is a fine question. The idea behind making the community seats come from different companies than the contribution seats was to promote diversity in company makeup. The concern is a situation where contributors from the largest companies will vote for their co-workers, because they know them the best. I wonder if there is a good compromise where you can have a community seat holder from a contributing company, who has only earned one contributing seat?

@sdake
Copy link
Member

sdake commented Jul 2, 2020

@oaktowner Contributors who make tangible contributions may not stand for election if they are employed by a company that maintains a "Contributor Seat". I would encourage you to think about why having elected community members that are free of this requirement would be valuable for a steering committee, or any board in general.

@sdake This is a fine question. The idea behind making the community seats come from different companies than the contribution seats was to promote diversity in company makeup. The concern is a situation where contributors from the largest companies will vote for their co-workers, because they know them the best. I wonder if there is a good compromise where you can have a community seat holder from a contributing company, who has only earned one contributing seat?

Sean,

Thank you for the response.

I think it is helpful @oaktowner or Google or whoever invented this unorthodox charter strives for some form of corporate diversity. I don't agree with your prediction in this area based upon 20+ years of open source experience.

However, to clarify, I didn't ask a question, I made a statement and I'll repeat it: I would encourage (@oaktowner) to think about why having elected community members that are free of this requirement would be valuable for a steering committee, or any board in general.

If there is a question in there, its "Why is having community members free of this requirement valuable for a steering committee, or any board in general"?

Cheers,
-steve

Copy link
Contributor

@rvennam rvennam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "Contributor" seats is causing some confusion. These are contributing company seats and not individual contributors. Would calling them Company seats make it more clear?

@oaktowner
Copy link
Contributor Author

I think "Contributor" seats is causing some confusion. These are contributing company seats and not individual contributors. Would calling them Company seats make it more clear?

Oh, thanks for pointing this out. At some point we had "Contribution" seats and that got changed to "Contributor." I actually like "Contribution" better (because it explains why the company got the seat). Will adjust.

@nrjpoddar
Copy link
Member

nrjpoddar commented Jul 3, 2020

I think "Contributor" seats is causing some confusion. These are contributing company seats and not individual contributors. Would calling them Company seats make it more clear?

Oh, thanks for pointing this out. At some point we had "Contribution" seats and that got changed to "Contributor." I actually like "Contribution" better (because it explains why the company got the seat). Will adjust.

I think the word Contribution/Contributing both might be confusing as I think even in the community seats you are still expected to contribute and probably anyone who got elected is there because they made contributions via means other than PRs. If my understanding is correct, then what we have in the proposed charter is “Organization seats” assigned via direct measurable contributions and “Individual seats” which covers contribution not directly measurable but equally valuable like end users/product owners/marketers/thought leadership etc. Naming is hard and we all struggle to get the right sentiment across. Not sure if my suggestion would work for everyone but I think that’s what the new charter is tryin to convey. Going further I would say for Individuals seats we should be even open to folks who are willing to contribute in Istio but have demonstrated expertise in their domains elsewhere. Opening up governance is about taking some risks too and I think we all will be pleasantly surprised by the outcomes we might get. I don’t mean to discount past contributions but intent and willingness to contribute should also be encouraged.

@oaktowner
Copy link
Contributor Author

@sdake to make the provenance of this clear: the various members of the steering committee have collaborated on this for over a year and some of decided it is a discussion that, in the spirit of openness, it is best to have the discussion in public on Github.

Thanks for your comment. To that end: we absolutely have increasing corporate diversity and increasing community involvement on the Steering Committee as goals. If I'm not mistaken (and please correct me if I'm wrong), it seems that you are pointing out is that we could have another goal which would be to increase diversity from within any given company (by allowing an employee not selected by the company to get elected).

That wasn't a goal we set out to achieve. And my concern with taking that goal on is that it would necessarily take away a seat from a company not already represented, thus subverting the primary goal (i.e., if all of the Googlers involved were to elect yet another Googler to Steering, that would keep a different company from getting a seat).

Does that make sense?

@jdumars
Copy link

jdumars commented Jul 5, 2020

What about "stakeholder seats" to refer to companies invested in the project? This also conveys that the person in the SC is representing the company's interests as they intersect with the project, and may be more fungible than someone who is a direct contributor.

@sdake
Copy link
Member

sdake commented Jul 6, 2020

@sdake to make the provenance of this clear: the various members of the steering committee have collaborated on this for over a year and some of decided it is a discussion that, in the spirit of openness, it is best to have the discussion in public on Github.

Thanks for your comment. To that end: we absolutely have increasing corporate diversity and increasing community involvement on the Steering Committee as goals. If I'm not mistaken (and please correct me if I'm wrong), it seems that you are pointing out is that we could have another goal which would be to increase diversity from within any given company (by allowing an employee not selected by the company to get elected).

That wasn't a goal we set out to achieve. And my concern with taking that goal on is that it would necessarily take away a seat from a company not already represented, thus subverting the primary goal (i.e., if all of the Googlers involved were to elect yet another Googler to Steering, that would keep a different company from getting a seat).

Does that make sense?

@oaktowner thank you for your considered response. I believe you haven't answered the question I asked, so I will answer it based upon my limited board service experience: Individual contributors help balance a board and create a dynamic exchange of information.

A well-balanced steering committee or board is necessary if the SC really wishes Istio to succeed long term. If the board is not well balanced, I would challenge you a little to consider: why not just have one person that is responsible for all of Istio governance.

I understand, to some degree the goals you set out to achieve.

Assignments from vested parties does not deliver transparency, which is one key aspect of open governance. Assignments from vested parties does not deliver participation, which is another key aspect of open governance. Assignments from vested parties does not deliver any form of accountability, which is a third aspect of open governance. My proposal is simple: If you wish to allocate seats based upon some nebulous metric, that is fine. Make those seat-holders accountable, ensure they are participants in the project, and most importantly drive them into transparency by enforcing voting for all steering committee seats - no matter their allocation.

Cheers,
-steve

@istio-testing istio-testing added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed needs-rebase size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jul 29, 2020
@sdake
Copy link
Member

sdake commented Jul 29, 2020

/test lint_community

502 error in linting relates to github overload on linting.

@craigbox
Copy link
Contributor

A huge thank-you to @sdake for helping with the magic Git incantations to get this PR back to a working state.

@oaktowner
Copy link
Contributor Author

cla:yes

@oaktowner
Copy link
Contributor Author

@googlebot I fixed it.

Comment on lines 94 to 104
1. A simple majority of Seats shall be sufficient to convene a meeting of the
Steering Committee, one nominating, and the rest agreeing, over email. Meeting
proposals shall be circulated to all Seats, and time, location, and medium shall
be selected to be as convenient as possible. All Seats shall be given at least
one week written notice that a meeting of the Steering Committee will be held.
1. At all meetings of the Steering Committee convened under this charter, at
least 60% of the Seats shall constitute a quorum for voting purposes. The vote
of an affirmative vote of 60% of the Seats present at the time of the vote shall
be the decision of the Steering Committee. However, any changes to the Steering
Committee Charter shall require a vote of 80% of the Seats present at the time of
the vote.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry it is not clear to me whether the vote has to be done at the SC meeting or can be offline. Based on the reading, it seems to indicate members have to be present to vote.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"time, location, and medium shall be selected to be as convenient as possible".

In our last meeting we chose to interpret this as allowing some or all voting to happen async, by e-mail, etc.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, i just wanted to make sure that is reflected here as the charter has Seats present at the time of the vote.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, we are going to consider "participating in the vote" instead of "present at the time of the vote."

1. Contribution Seat terms expire on January 31 and Community Seat terms expire
on July 31. If necessary, a company holding a Contribution Seat may change the
appointed individual at any time during the term.
1. No Company can have more than 5 seats in total on the Steering Committee.
Copy link
Member

@hzxuzhonghu hzxuzhonghu Jul 31, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think less than 1/3 is resonable.

xref: https://github.com/kubernetes/steering/blob/master/elections.md#maximal-representation

the results of an election result in greater than 1/3 representation, the lowest vote 
getters from any particular company will be removed until representation on the 
committee is less than one-third.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And kubernetes charter https://github.com/kubernetes/steering/blob/master/charter.md#quorum

Steering committee members are generally expected to attend every meeting. We use the following guidelines to determine whether we have reached quorum and are able to proceed with a meeting.

- Round quorum up if total number of members is odd
- Quorum to meet is 1/2 members attending (eg: 6/12, 6/11, 4/7)
- Quorum to vote in a meeting is 2/3 members attending (eg: 8/12, 8/11, 5/7)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good examples. I would also prefer no one company holds over 1/3, which was in my initial proposal as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The max number of contribution members of one company should be "total number of contribution member/the number of eligible company". In case of 9 seats and 3 companies, it should be 9/3 = 3. I would also argue that we may want to open the seats to more companies to encourage wider industry participation.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also agree to use a percentage of voting seats to define the max number of seats versus a flat number.
I like a percentage of 1/3 (33%) max voting seats but I would place the percentage against the total number of voting seats in the committee and not limit the max to simply the contributor seats. So if the total number is 13 then the max would be 4 seats.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is against the total seats: the percentage is 38.4%, and we're choosing to express it in a number of seats (5). 😄
33% of 13 is 4.29 seats. Which way do we round it? A flat number seems easier for that purpose.

That procedure will be published to the istio/community repository;
modifications subsequent to the annual publication of rules shall be considered
modifications to the Steering Committee Charter.
1. The top three Companies contributing to Istio are eligible for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noting that we discussed changing this to top three companies are guaranteed a seat, rather than only the top three being eligible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the comment. Will adjust (probably to "are guaranteed a seat")

Copy link
Contributor

@smawson smawson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved based on vote in Steering Committee

@craigbox
Copy link
Contributor

Manually setting cla:yes; Neeraj made a commit from a different account but he has signed the CLA.

@craigbox craigbox added cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. and removed cla: no Set by the Google CLA bot to indicate the author of a PR has not signed the Google CLA. labels Aug 24, 2020
@googlebot
Copy link

A Googler has manually verified that the CLAs look good.

(Googler, please make sure the reason for overriding the CLA status is clearly documented in these comments.)

ℹ️ Googlers: Go here for more info.

@craigbox craigbox dismissed stale reviews from knrc and dcberg August 24, 2020 08:19

Resolved in later commit.

@istio-testing istio-testing merged commit 25b648e into istio:master Aug 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla: yes Set by the Google CLA bot to indicate the author of a PR has signed the Google CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.